package com.lishem.carl._03hasbtable;

/**
 * https://leetcode.cn/problems/valid-anagram/description/
 * <p>
 * 给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词。
 * <p>
 * 注意：若 s 和 t 中每个字符出现的次数都相同，则称 s 和 t 互为字母异位词。
 * <p>
 * 示例 1:
 * <p>
 * 输入: s = "anagram", t = "nagaram"
 * <p>
 * 输出: true
 * <p>
 * 示例 2:
 * <p>
 * 输入: s = "rat", t = "car"
 * <p>
 * 输出: false
 */
public class _1LetCode242_有效的字母异位词 {

    public boolean isAnagram(String s, String t) {
        int[] countArr = new int[26];
        char[] sChars = s.toCharArray();
        for (char sChar : sChars) {
            countArr[sChar - 'a']++;
        }
        char[] tChars = t.toCharArray();
        for (char tChar : tChars) {
            countArr[tChar - 'a']--;
        }
        for (int i : countArr) {
            if (i != 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        _1LetCode242_有效的字母异位词 sol = new _1LetCode242_有效的字母异位词();
        System.out.println(sol.isAnagram("anagram", "nagaram")); // true
        System.out.println(sol.isAnagram("rat", "car")); // false
    }
}
